<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Proyecto_contacto_lst( $this );

	class Proyecto_contacto_lst extends Lst
	{
	function Proyecto_contacto_lst( &$oModule )
		{
			$this->Lst( $oModule );
			$this->oFecha = new DateObject();
			$this->oModAdministracion =& loadModule( 'administracion' );
		}
	function setLevel()
		{
			$this->aShowColumns = array_keys ( $this->aColumns );

			if ( array_key_exists( 'ncProyecto' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Proyecto',$this->aShowColumns)]);
			if ( array_key_exists( 'ncObjetivo' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Objetivo',$this->aShowColumns)]);
			if ( array_key_exists( 'ncTarea' , $this->aFields )  ) unset($this->aShowColumns[array_search( 'Tarea',$this->aShowColumns)]);
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Proyecto_contacto_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			$this->setTitle ( "Proyectos - Contactos" );
			$this->setSummary( "Esta tabla contiene los contactos de los Proyectos" );
			$this->addColumn ( 'Proyecto', 'cdProyecto' );
			$this->addColumn ( 'Objetivo', 'cdObjetivo' );
			$this->addColumn ( 'Tarea', 'cdTarea' );
			$this->addColumn ( 'Organizacion' , 'cdOrganizacion' );
			$this->setColumnAction ( 'Organizacion', VER_ORGANIZACION, 'ncOrganizacion' ,'', &$this->oModAdministracion);
			$this->addColumn ( 'Nombre', '', 'cApellido' );
			$this->setColumnAction ( 'Nombre', VER_PERSONA, 'ncPersona' , '', &$this->oModAdministracion);
		}
	function makeColumn ( $aRow, $cField )
	{
		switch( $cField )
		{
			case 'Nombre':
					$cReturn .= $aRow['cNombre'] . ' ' . $aRow['cApellido'];
					break;
			default:
					return false;
				break;
		}
		return $cReturn;
	}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT Tar.cdTarea, Obj.cdObjetivo, PCo.ncContacto, Pro.ncProyecto, Pro.cdProyecto, Per.ncPersona, Per.cNombre, Per.cApellido, PCo.ncOrganizacion , Org.cdOrganizacion
							FROM atProyecto as Pro
							JOIN atProyectoContacto as PCo
								ON PCo.ncProyecto = Pro.ncProyecto
							LEFT JOIN atObjetivo as Obj
								ON Obj.ncProyecto = PCo.ncProyecto
								AND Obj.ncObjetivo = PCo.ncObjetivo
							LEFT JOIN atTarea as Tar
								ON Tar.ncTarea = PCo.ncTarea
							LEFT JOIN atOrganizacion as Org
								ON Org.ncOrganizacion = PCo.ncOrganizacion
							LEFT JOIN atPersona as Per
								ON Per.ncPersona = PCo.ncPersona";
			// Arma el Filtro de la Consulta
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray() , 'PCo' );
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$this->oModule->setBack();
			$cParametroRegistro =  $this->getFieldString();
			if ( $this->aFields['ncProyecto'] )
			{
				$this->addListAction ( AGREGAR_UN_CONTACTO_A_UN_PROYECTO , $cParametroRegistro, 'I' ,  VENTANA_SECUNDARIA);
			}
		}
	function makeRowActions( $aRow )
		{
			$oMod  =& loadModule( 'administracion' );
			$cParametroRegistro =  "ncProyecto=" . $aRow["ncProyecto"] . "&amp;ncContacto=" . $aRow["ncContacto"];
			$this->addRowAction ( MODIFICAR_UN_CONTACTO_DE_UN_PROYECTO , $cParametroRegistro, '', VENTANA_SECUNDARIA );
			$this->addRowAction ( ELIMINAR_UN_CONTACTO_DE_UN_PROYECTO , $cParametroRegistro);
		}
	}
?>
